package design.pattern.singleton.lazy;

/**
 * @description: 懒汉式单例-简单例子
 * @author: liuzhangcheng
 **/
public class LazySimpleSingleton {

    //静态块，在公共内存区域
    private static LazySimpleSingleton lazySimpleSingleton;

    private LazySimpleSingleton() {}

    // synchronized 对方法进行线程同步，防止出现高并发情况下多次实例化。但阻塞了整个类调用
    public synchronized static LazySimpleSingleton getInstance() {
        if (lazySimpleSingleton == null) {
            lazySimpleSingleton = new LazySimpleSingleton();
        }
        return lazySimpleSingleton;
    }
}
